package cn.lj.dao;

import cn.lj.pojo.QueryVo;
import cn.lj.pojo.User;

import java.util.List;

/**
 * @author lj
 * @Description: 用户持久层
 * @date 2020-11-24 15:35
 * @QQ 851477108
 */


public interface UserDao {

    /**
     * 查询所有操作
     * @return
     */
    List<User> findAll();

    /**
     * 保存
     * @param user
     */
    void saveUser(User user);

    /**
     * 根据Id删除用户
     * @param userId
     */
    void deleteUser(Integer userId);

    /**
     * 更新用户
     * @param user
     */
    void updateUser(User user);


    /**
     * 根据id查询用户信息
     * @param userId
     * @return User
     */
    User findById(Integer userId);

    /**
     * 根据名称模糊查询用户信息
     * @param username
     * @return List<User>
     */
    List<User> findByName(String username);

    /**
     * 查询总用户数
     * @return
     */
    int findTotal();

    /**
     * 根据queryVo中的条件查询用户
     * @
     */
    List<User> findUserByVo(QueryVo vo);

    /**
     * 根据传入参数条件查询
     * @param user 查询条件：有可能有用户名，也有没用户名
     * @return
     */
    List<User> findUserByCondition(User user);

    /**
     * 根据queryvo中提供的id集合，查询用户信息
     * @param vo
     * @return
     */
    List<User> findUserByIds(QueryVo vo);
}
